The present invention is related to computer networks, and more particularly to network route tracing.
A computer network consists of communications links that interconnect various components. A communications link is a communications channel or transmission medium. Components of the network include computers (also called hosts) and devices such as routers, hubs, switches, and the like which connect network segments and forward data transmissions.
Bandwidth refers to the amount of data that can be sent through the network. Bandwidth is usually measured in bits per second (bps). A computer network has a finite amount of bandwidth and thus the amount of data being sent through the network depends on the amount of available bandwidth. If computers on a network attempt transmissions requiring too much bandwidth, the network may fail to support one or more of the computers.
To address this problem, previous systems either have allocated bandwidth for the entire network generally, or previous systems have added additional logic for managing bandwidth to the individual components on the network. However, these approaches have disadvantages. Systems that allocate bandwidth for the entire network fail to consider how that bandwidth will be used over individual links of the network. Adding additional logic for managing bandwidth to the individual components on the network requires additional hardware in each component of the network.
For these and other reasons, there is a need for the present invention.
According to one embodiment of the present invention, a route is traced between two hosts in a network. The network is represented as a logical tree having a plurality of nodes. Each one of the nodes corresponds to a component in the network and each non-root node has a parent node. Two nodes are identified in the logical tree. A first node corresponds to a first host and a second node corresponds to a second host. If one of the two nodes exists at a lower level of the logical tree, then a first path is traced from the first node at the lower level to the parent node at a higher level until the parent node is at a same level of the logical tree as the second node. The first path is further traced up the logical tree from the parent node and a second path is traced up the logical tree from the second node until the first path and the second path meet at a same node.